Semiconductor devices can be digitally implemented as models that may be tested within a simulator to determine how the actual characteristics of the semiconductor devices will operate after being manufactured. Each model instructs the simulators about the physical properties of the modeled circuitry and/or how other physical interactions affect the flow of electricity through the modeled circuitry. For example, the models may include temperature dependent currents, charges, and capacitances for a location comprising a semiconductor device. For a device that has existed and is used within a circuit in generally the same configuration for a period of time, the simulator may employ a primitive (e.g., SPICE primitive) of that device within the model.
The primitives are models that have been improved (e.g., bugs removed, flow paths optimized, etc.) such that the simulators quickly and accurately produce a solution to the flow of electricity when modeling circuitry that uses the primitive. Primitives, however, do not exist for every device that needs to be modeled. Model designers, therefore, have to write their own models when testing either the device itself, or circuits that may include the device. Input code commands and/or tools used to create models often vary depending on the simulator (e.g., SPICE2, SPICE3, PSPICE, LTSPICE, HSPICE, ELDO, MicroCAP, Simetrix, Spectre, ADS, SABER, and Simplorer etc.). This can multiply the work required to create models because the source code may have to be written differently depending on which simulator the model is created for.